﻿using System;
using System.Data;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BLL;

namespace WebApplication1
{
    public partial class GioHang : System.Web.UI.Page
    {

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (Session["user"] != null)
                {
                    if (Session["quyen"].ToString() == "Admin")
                    {
                        Response.Redirect("Default.aspx");
                    }
                }
                if (Request.QueryString["action"] == "DaThanhToan")
                {
                    Lbthongbao.Text = "Đơn hàng của bạn đã được xử lý thành công, chúng tôi sẽ liên lạc với bạn trong thời gian sớm nhất đẻ giao hàng. Cám ơn bạn đã mua hàng của chúng tôi!";
                    Panel1.Visible = false;
                    return;
                }
                else if (Session["sohang"].ToString() == "0")
                {
                    Lbthongbao.Text = "Giỏ hàng chưa có sản phẩm!";
                    Panel1.Visible = false;
                }
                else
                {
                    BLLGioHang gio = (BLLGioHang)Session["GioHang"];
                    GridView1.DataSource = getgiohang();
                    GridView1.DataBind();
                    Lbtongtien.Text = gio.Total.ToString();
                }
            }
        }
        public DataTable getgiohang()
        {
            BLLGioHang gio = (BLLGioHang)Session["GioHang"];
            if (gio != null)
            {
                return gio.Data;
            }
            return null;
        }

        protected void ImageButton2_Click(object sender, ImageClickEventArgs e)
        {
            Response.Redirect("Default.aspx");
        }

        protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
        {
            int count = 0;
            foreach (GridViewRow row in GridView1.Rows)
            {
                CheckBox cb = (CheckBox)row.FindControl("chkCheckItem");
                if (cb.Checked)
                {
                    count += 1;
                    string id = GridView1.Rows[row.RowIndex].Cells[1].Text;

                        BLLGioHang gio = (BLLGioHang)Session["GioHang"];
                    //xoa' sp khoi gio hang`
                        gio.Remove(id);
                        Session["sohang"] = (int)Session["sohang"] - 1;
                }
            }
            if (count == 0)
            {
                Lbthongbao.Text = "Chọn sản phẩm cần xóa";
               // Lbxoa.Text = "Chọn sản phẩm cần xóa";
            }
            else
            {
                Response.Redirect("GioHang.aspx");
            }
        }

        protected void ImageButton3_Click(object sender, ImageClickEventArgs e)
        {
              Int64 sotien = 0;
            //so tien trong tai khoan cua user 
              sotien=Convert.ToInt64(Session["taikhoan"]);
            //neu chua dang nhap
            if (Session["user"] == null)
            {
                Lbthongbao.Text = "Bạn phải đăng nhập mới thanh toán được";
            }
            else if (Session["sohang"].ToString() == "0")
            {
                Lbthongbao.Text = "Giỏ hàng chưa có sản phẩm nào!";
            }
            //neu tai khoan co nhieu` tien` hon tong? tien` mua hang`
            else if (sotien > Convert.ToInt64(Lbtongtien.Text))
            {
                //them don hang moi'
                BLLDonHang donhang = new BLLDonHang("",Session["user"].ToString(),DateTime.Now.ToString().Trim(),Convert.ToDecimal(Lbtongtien.Text),"Chưa liên lạc");
                string iddonhang=donhang.Add;
                //them chi tiet don hang
                foreach (GridViewRow row in GridView1.Rows)
                {
                    string idsp = GridView1.Rows[row.RowIndex].Cells[1].Text.ToString();
                    TextBox soluong = (TextBox)row.FindControl("txtSoLuong");
                    string dongia = GridView1.Rows[row.RowIndex].Cells[4].Text.ToString();
                    string thanhtien = GridView1.Rows[row.RowIndex].Cells[5].Text.ToString();
                    BLLChiTietDonHang ctdonhang = new BLLChiTietDonHang("",idsp,iddonhang,Convert.ToInt32(soluong.Text),Convert.ToDecimal(dongia),Convert.ToDecimal(thanhtien));
                    string idctdonhang = ctdonhang.Add;
                }
                //update tai` khoan? sau khi thanh toan'
                sotien = sotien - Convert.ToInt64(Lbtongtien.Text);
                BLLNguoiDung user = new BLLNguoiDung(Session["user"].ToString(), sotien.ToString(), "");
                user.UpdateTaiKhoan();
                Session["taikhoan"] = sotien.ToString();
                //xoa gio? hang`
                BLLGioHang gio = (BLLGioHang)Session["GioHang"];
                gio.Clear();
                Session["sohang"] = 0;
                //reload 
                Response.Redirect("GioHang.aspx?action=DaThanhToan");
            }
            else
            {
                Lbthongbao.Text = "Tài khoản không đủ tiền!";
                
            }
        }

        protected void Imbcapnhat_Click(object sender, ImageClickEventArgs e)
        {
            BLLGioHang gio = (BLLGioHang)Session["GioHang"];

            foreach (GridViewRow row in GridView1.Rows)
            {
                //string IDSP = GridView1.Rows[row.RowIndex].Cells[1].Text.ToString();
                TextBox soluong = (TextBox)row.FindControl("txtSoLuong");
                string id = GridView1.Rows[row.RowIndex].Cells[1].Text;
                DataRow dong = gio.Data.Rows.Find(id);
                if (!chekcnum(soluong.Text) || soluong.Text == "0")
                {
                    Lbthongbao.Text = "Số lượng không hợp lệ";
                  
                    GridView1.DataSource = getgiohang();
                    GridView1.DataBind();
                    Lbtongtien.Text = gio.Total.ToString();
                    break;
                }
                else if (Convert.ToInt32(soluong.Text) > 3)
                {
                    Lbthongbao.Text = "Số lượng đã vượt quá 3";
                   
                    GridView1.DataSource = getgiohang();
                    GridView1.DataBind();
                    Lbtongtien.Text = gio.Total.ToString();
                    break;
                    // Response.Redirect("GioHang.aspx?action=ErroTK");

                }
                else if (soluong.Text != dong["Quantity"].ToString())
                {
                    gio.UpdateQuantity(id, Convert.ToInt32(soluong.Text));

                    Lbthongbao.Text = "";
                    //GridView1.DataSource = null;
                    GridView1.DataSource = getgiohang();
                    GridView1.DataBind();
                    Lbtongtien.Text = gio.Total.ToString();
                }
            }
           // Response.Redirect(Request.RawUrl);
            
        }
        //kiem tra chuoi nhap vao co phai la so ko
        private bool chekcnum(string num)
        {
            decimal number;
            bool isnum = false;
            isnum = decimal.TryParse(num, out number);
            return isnum;
        }
    }
    
}
